package com.xja.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xja.model.dto.LoginDTO;
import com.xja.model.dto.PasswordDTO;
import com.xja.model.dto.RegisterDTO;
import com.xja.model.entity.User;
import com.xja.model.vo.resp.LoginVO;
import jakarta.servlet.http.HttpServletRequest;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author caijg
 
 */
public interface IUserService extends IService<User> {

    /**
     * 发送邮箱验证码
     * @param registerDTO 验证码信息
     */
    void sendEmailCode(RegisterDTO registerDTO);

    /**
     * 用户注册
     * @param registerDTO 注册信息
     */
    void register(RegisterDTO registerDTO);

    /**
     * 用户登录
     * @param loginDTO 登录信息
     * @return  登录结果
     */
    LoginVO login(LoginDTO loginDTO);

    /**
     * 更新用户信息
     * @param user 用户信息
     */
    void updateProfile(User user);

    /**
     * 修改密码
     * @param passwordDTO 密码信息
     */
    void changePassword(PasswordDTO passwordDTO);

    /**
     * 用户退出登录
     */
    void logout(HttpServletRequest request);
}
